iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文會延續 Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore 使用 .NET MAUI 技術所建立的 TopStore App ,更新 .NET MAUI 在 .NET 6 轉換到 .NET 7 時所需要調整的部分,並持續地的開發 TopStore App 其他需要的功能。

本篇是 Re: 從零續用 .NET MAUI 技術開發過去的一個 App : TopStore 系列 系列文的 EP18。


如果要完成如原 TopStoreApp 執行一樣動作的效果,那就要來進行諸多調整了~~~

在 EP17 當中有描述到 "下訂單" 的第一個動作:

點選 "新增" 後,畫面會從訂單頁面切到聯絡人列表的畫面準備進行 "下訂單"。  

在 EP17 已經實作完成 OrdersPage 與 OrderPageViewMode 中的 Add 方法,透過 Binding 與 AddCommand 繫結。

在 Add 方法中所要執行的程式碼,改成如下:

await Shell.Current.GoToAsync($"//Orders/People?isOrder=true");

完成結果如下圖:
01

若仔細觀察在 EP17 當中所提到的此動作畫面時,會發現進入到聯絡人列表時會有返回上一層的選項,並且下方的 TabBar 的選項是消失的:
02

所以,前述所加入的轉跳路由程式碼,是把 People 放在 Orders 路由下,並且帶入一個 isOrder 的參數。

當然,也要有存在這樣的路由對應處理,所以就打開 AppShell.xaml.cs,並在其建構方法中繼續加入以下路由註冊的程式碼:

Routing.RegisterRoute("Orders/People", typeof(Pages.PeoplePage));

完成結果如下圖:
03

接著繼續調整 MauiProgram.cs 原本撰寫在 RegisterAppViewsAndViewModels 方法當中:

builder.Services.AddSingleton<Pages.PeoplePage>();
builder.Services.AddSingleton<ViewModels.PeoplePageViewModel>();

改寫為:

builder.Services.AddTransient<Pages.PeoplePage>();
builder.Services.AddTransient<ViewModels.PeoplePageViewModel>();

完成結果如下圖:
04

而目前的調整應該已經完成如下結果:

聯絡人列表:
05-1

訂單列表:
05-2

透過訂單列表上的新增進入到聯絡人列表:
05-3

透過訂單列表上方的 "新增" 按鈕而進入的 "聯絡人列表",注意此時上方的導覽列有出現返回鈕,且下方的分頁頁籤仍保留在 "訂單" 的位置。

當然要完成到若是透過此方式進入 "聯絡人列表" 時,需要把下方的分頁頁籤給移除,而這就是下回 EP 再繼續探討的了囉~~~


上一篇
EP17
下一篇
EP19
系列文
Re: 從零續用 .NET MAUI 技術開發過去的一個 App : TopStore 系列30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言